【JavaScript】戻り値(return) - 関数の処理結果を値で返す
JavaScriptの戻り値について解説します。
検証環境
戻り値
戻り値は“関数の処理結果を呼び出し元に返す仕組み”です。
戻り値を使うには『戻り値の定義』と『戻り値の受け取り』の処理を記述します。
戻り値の定義
関数の呼び出し元に返す値を関数に定義します。
基本構文
function 関数名( 仮引数1, 仮引数2 ... ) {
// 処理...
return 戻り値;
}
戻り値の定義はreturn 戻り値
の部分です。
戻り値
には変数などを記述でき、戻り値がないreturn;
のみも可能です。
サンプル
function addition( x, y ) {
const result = x + y;
___ih_hl_start
return result;
___ih_hl_end
}
3行目のreturn result
が戻り値の定義です。
変数result
は仮引数x
とy
の合計値であり、その値を戻り値として返しています。
戻り値の受け取り
関数の呼び出し元で戻り値を受け取ることができます。
基本構文
関数名( 実引数1, 実引数2 ... )
戻り値のある関数の呼び出しは、戻り値がない場合と同じです。
サンプル
function addition( x, y ) {
const result = x + y;
return result;
}
___ih_hl_start
console.log(addition(3, 8));
___ih_hl_end
11
6行目でaddition
関数を呼び出しています。
addition
関数は変数result
を戻り値としており、6行目の呼び出しでは11
が記憶されています。
呼び出し元では戻り値を受け取りますが、そのイメージは『関数の呼び出し』が『戻り値』に置き変わるイメージです。
例えば、6行目はconsole.log(addition(3, 8))
の呼び出し部分であるaddition(3, 8)
が11
に置き変わり、console.log(11)
となるイメージです。
そのため、実行結果のようにコンソールには11
が出力されます。
また、戻り値は代入演算子で変数に記憶することも可能です。
function addition( x, y ) {
const result = x + y;
return result;
}
___ih_hl_start
let total = addition(3, 8);
___ih_hl_end
console.log(total);
11
こちらも『関数の呼び出し』が『戻り値』で置き変わるイメージで、let total = addition(3, 8)
がlet total = 11
と解釈すると分かりやすくなります。
複数のreturn
1つの関数に複数のreturn
を定義できますが、return
を実行すると関数の処理は終了され、以降の処理は実行されません。
function calc( x, y ) {
console.log("Addition");
const result1 = x + y;
___ih_hl_start
return result1;
___ih_hl_end
console.log("Subtraction");
const result2 = x - y;
___ih_hl_start
return result2;
___ih_hl_end
}
let result = calc(3, 8);
console.log(result);
Addition
11
calc
関数に2つのreturn
があります。
この関数は呼び出すと必ず1つ目のreturn
(4行目)が実行されるため、以降の処理(6〜8行目)は実行されません。
そのため、複数のreturn
を定義する場合は、if文などの条件分岐でreturn
が実行されるケースを制御します。
function calc( type, x, y ) {
if( type == "+" ) {
console.log("Addition");
const result1 = x + y;
return result1;
} else if( type == "-" ) {
console.log("Subtraction");
const result2 = x - y;
return result2;
}
}
let r1 = calc("+", 3, 8);
console.log(r1);
let r2 = calc("-", 3, 8);
console.log(r2);
Addition
11
Subtraction
-5